import java.util.HashMap;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: DELL
 * Date: 2023-03-31
 * Time: 15:38
 */
public class Training_0329 {

    /**
     *
     * @param args 返回最终小易的能力值
     */

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext()) {
            int n = scan.nextInt(); // 怪物数量
            int a = scan.nextInt(); // 初始能力值
            for (int i = 0; i < n; i++) {
                int b = scan.nextInt(); // 没次遇到的怪物能力值
                if (b <= a) {
                    a += b;
                } else {
                    a += fun(a, b); // 对当前能力和怪物能力求最大公约数
                }
            }
            System.out.println(a);
        }

    }

    private static int fun(int m, int n) {
        // 此时 n 必定大于 m
        // 辗转相除法
        while (n != 0) {
            // 1. 记录当前 最大值模最小值的结果
            int k = m % n;
            // 2. 交换最大值和当前最小值
            m = n;
            n = k;
        }
        return m;
    }

    /**
     * map 的利用
     *
     * @param args 返回字符串中只出现一次的字符
     */
    public static void main1(String[] args) {
        Scanner scan = new Scanner(System.in);
        String s = scan.nextLine(); // 输入字符串
        HashMap<Character, Integer> map = new HashMap<>();
        boolean flag = true;
        for (int i = 0; i < s.length(); i++) {
            if (map.containsKey(s.charAt(i))) {
                // 此时map中已经存有 该字符对应的字符, 将其对应的value设为1
                map.put(s.charAt(i), 1);
            } else {
                // 第一次出现, 设置其key对应的value 为0
                map.put(s.charAt(i), 0);
            }
        }
        // 遍历 map 取出
        for (int i = 0; i < s.length(); i++) {
            if (map.get(s.charAt(i)) == 0) {
                System.out.println(s.charAt(i));
                flag = false;
                break;
            }
        }
        // 判定最终是否有只出现一次的数字
        if (flag) {
            System.out.println(-1);
        }
    }
}
